package br.com.news.activity;

import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import br.com.news.R;

/**
 * Activity para tratar erro da aplicação.
 * 
 * @author Jefferson
 * @since 16/03/2013
 */
public class ErroActivity extends GenericActivity implements OnClickListener {

	public static final String ERRO = "erro";

	private TextView txtErro;
	private int idErro;

	@Override
	protected int getContentView() {
		return R.layout.activity_erro;
	}

	@Override
	protected void recuperarParametros() throws Exception {
		Bundle bundle = getIntent().getExtras();
		if (bundle != null) {
			idErro = bundle.getInt(ERRO);
		} else {
			idErro = R.string.falha_erros;
		}
	}

	@Override
	protected void recuperaElementosDoXml() throws Exception {
		txtErro = (TextView) findViewById(R.activity_erro.txtErro);
	}

	@Override
	protected void instanciaElementosDoXml() throws Exception {
		txtErro.setText(getString(idErro));
	}

	@Override
	protected void defineAcaoDosElementos() throws Exception {
		if (idErro == R.string.nenhuma_categoria_selecionada) {
			txtErro.setOnClickListener(this);
		}
	}

	/**
	 * Chama ErroActivity para que seja apresentado a falha.
	 * 
	 * @param context
	 * @param idErro - o id do texto no string.xml
	 */
	public static void chamaActivityErro(Context context, int idErro) {
		Intent intent = new Intent(context, ErroActivity.class);
		intent.putExtra(ERRO, idErro);
		context.startActivity(intent);
	}

	@Override
	public void onClick(View v) {
		if (idErro == R.string.nenhuma_categoria_selecionada) {
			Intent intent = new Intent(this, CategoriaActivity.class);
			startActivity(intent);
			finish();
		}
	}

}
